1. Technical Field
The present invention relates in general to an improved data processing system and in particular to an improved method and apparatus for graphical computation in a data processing system. Still more particularly, the present invention relates to a method and system of graphical computation to efficiently process graphics data in a data processing system.
2. Description of the Related Art
Data processing systems such as personal computers and workstations are commonly utilized to run computer-aided design (xe2x80x9cCADxe2x80x9d) applications, computer-aided manufacturing (xe2x80x9cCAMxe2x80x9d) applications, and computer-aided engineering (xe2x80x9cCAExe2x80x9d) tools. Engineers, scientists, technicians, and others employ these applications daily. These applications involve complex calculations, such as finite element analysis, to model stress in structures. Other applications include chemical or molecular modelling applications. CAD/CAM/CAE applications are normally graphics intensive in terms of the information relayed to the user. Generally, users of these applications require and demand that the data processing systems be able to provide extremely fast graphics information.
The processing of graphics data to provide a graphical display on a video display terminal requires an extremely fast graphics processing system in order to provide a display with a rapid response. It is desirable to be able to provide the performance required utilizing the present technology.
Symmetric multiprocessor (SMP) data processing systems have been employed to improve and enhance overall system performance in response to the demand for rapid response and complex graphics displays. In general, overall system performance is improved by providing multiple processors to allow multiple applications, also called programs, to execute simultaneously on the same data processing system. Note, however, that in this situation, the application itself will execute with approximately the same performance. In other words, application performance is the same, but overall system performance may be improved. It is possible to increase performance of an application by changing it to utilize multiple processors simultaneously, but few applications have made such changes to date. Thus, for an application, the advantage provided by SMP architecture is lost in such situations. Therefore, it would be advantageous to have an improved method and apparatus for taking advantage of the SMP architecture within the graphics pipeline used by the application.
The present invention provides a method and apparatus for processing hierarchical graphics data supplied by an application. The data processing system includes a plurality of threads in which a first thread receives and stores graphics data from the application. The application then performs a procedure call to initiate an update for an attached display device. The hierarchical data is then traversed. During traversal, the data is partitioned into workgroups and a sequence number is associated with each workgroup identifying the order in which the workgroup is processed. Each thread processes workgroups according to which sequence numbers it obtains uniquely from a location accessible to all threads. Processed workgroups are stored in a memory associated with the thread processing that workgroup. The primary thread dispatches the processed workgroups from each of the memories associated with the threads to a graphics processor for the graphics display device. The workgroups are dispatched in an order indicated by the sequence number associated with each processed workgroup.
The above as well as additional objectives, features, and advantages of the present invention will become apparent in the following detailed written description.